(deftemplate culoarePantaloni (slot persoana) (slot culoare))
(deftemplate pozitie (slot  persoana) (slot x))

(assert(culoarePantaloni(persoana Mutu)(culoare albastru)))
(assert(culoarePantaloni(persoana Mutu)(culoare verde)))
(assert(culoarePantaloni(persoana Mutu)(culoare orange)))
(assert(culoarePantaloni(persoana Mutu)(culoare rosu)))

(assert(culoarePantaloni(persoana Chivu)(culoare albastru)))
(assert(culoarePantaloni(persoana Chivu)(culoare verde)))
(assert(culoarePantaloni(persoana Chivu)(culoare orange)))
(assert(culoarePantaloni(persoana Chivu)(culoare rosu)))


(assert(culoarePantaloni(persoana Nicolita)(culoare albastru)))
(assert(culoarePantaloni(persoana Nicolita)(culoare verde)))
(assert(culoarePantaloni(persoana Nicolita)(culoare orange)))
(assert(culoarePantaloni(persoana Nicolita)(culoare rosu)))


(assert(culoarePantaloni(persoana Radoi)(culoare albastru)))
(assert(culoarePantaloni(persoana Radoi)(culoare verde)))
(assert(culoarePantaloni(persoana Radoi)(culoare orange)))
(assert(culoarePantaloni(persoana Radoi)(culoare rosu)))

(assert(pozitie(persoana Mutu)(x 1)))
(assert(pozitie(persoana Mutu)(x 2)))
(assert(pozitie(persoana Mutu)(x 3)))
(assert(pozitie(persoana Mutu)(x 4)))

(assert(pozitie(persoana Chivu)(x 1)))
(assert(pozitie(persoana Chivu)(x 2)))
(assert(pozitie(persoana Chivu)(x 3)))
(assert(pozitie(persoana Chivu)(x 4)))

(assert(pozitie(persoana Nicolita)(x 1)))
(assert(pozitie(persoana Nicolita)(x 2)))
(assert(pozitie(persoana Nicolita)(x 3)))
(assert(pozitie(persoana Nicolita)(x 4)))

(assert(pozitie(persoana Radoi)(x 1)))
(assert(pozitie(persoana Radoi)(x 2)))
(assert(pozitie(persoana Radoi)(x 3)))
(assert(pozitie(persoana Radoi)(x 4)))

(assert(culoarePantaloni(persoana Mario)(culoare violet))) ; l-am adaugat pe mario 
(facts) ;am rulat programul cu mario adaugat

;(defrule muv ; definirea de reguli 
;?idfapt <-(culoarePantaloni (persoana Mario)(culoare violet)) ;id-ul lu mario
;	=> 
;	(retract ?idfapt);ca sa retrag un id din baza de cunostiinte trebuie sa ii stiu id-ul adik f-1,2.....
;    ; l-am retras pe mario
;)


;(facts) ;afiseaza ce e in baza de cunostiinte dupa ce l-am sters pe mario


(defrule schimbaculoare
 ?modific <- (culoarePantaloni(persoana Mario)(culoare violet)) ;?modific = nume de var
    =>
    (modify ?modific (culoare roz))
)

(run);ruleaza programul
(facts)